> ## Documentation Index
> Fetch the complete documentation index at: https://sequence-0fb8d9e6-api_docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Checkout

> Documentation for Unreal SDK overview for the Sequence infrastructure stack for web3 gaming.

## Creating Transactions

### Generate Listing Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/generate_listing_transaction.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=8531ef1f99621f76cfbf313ba3c65c1a" width="2018" height="1064" data-path="images/unreal/checkout/generate_listing_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateListingTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, TokenId, Amount, ContractType, CurrencyTokenAddress, PricePerToken, Expiry, OrderbookKind, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Offer Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/generate_offer_transaction.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=a3149c3ce76444b54ebbb2548dc6a916" width="2018" height="1064" data-path="images/unreal/checkout/generate_offer_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateOfferTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, TokenId, Amount, ContractType, CurrencyTokenAddress, PricePerToken, Expiry, OrderbookKind, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Buy Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/generate_buy_transaction.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=c63e9c23bf571e723b11d8112b3e91d6" width="2018" height="1064" data-path="images/unreal/checkout/generate_buy_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateBuyTransaction(SequenceSdk::GetChainId(), WalletAddress, Order, Amount, AdditionalFee, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Sell Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/generate_sell_transaction.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=9446da8c2bb36daeec779b6de298f833" width="2018" height="1064" data-path="images/unreal/checkout/generate_sell_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateSellTransaction(SequenceSdk::GetChainId(), WalletAddress, Order, Amount, AdditionalFee, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Cancel Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/generate_cancel_transaction.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=2597abadbf822229d192d003a6f0d989" width="2018" height="1064" data-path="images/unreal/checkout/generate_cancel_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateCancelTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, OrderId, MarketplaceKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Cancel Transaction by Order

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/generate_cancel_transaction_by_order.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=a12e2d26c28cb92cc494b5f8b6676d3b" width="2018" height="1064" data-path="images/unreal/checkout/generate_cancel_transaction_by_order.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateCancelTransactionByOrder(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, Order, MarketplaceKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Steps to Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/steps_to_transaction.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=8941c3eec4ae3ee3a90aaa35bf47b8a5" width="2018" height="1064" data-path="images/unreal/checkout/steps_to_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    UTransactions* Transactions = NewObject<UTransactions>();

    for (const FTransactionStep& Step : Steps)
    {
        FRawTransaction RawTransaction = FRawTransaction(Step.To, Step.Data, Step.Value.IsEmpty() ? TEXT("0") : Step.Value);
        Transactions->AddRaw(RawTransaction);
    }
    ```
  </Tab>
</Tabs>

## Checkout Options

### Get Checkout Options

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/get_checkout_options.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=5ef768fcc1d99297ae0fb691e9fc133f" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptions(SequenceSdk::GetChainId(), WalletAddress, Orders, AdditionalFeeBps, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by Orders

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/get_checkout_options_by_orders.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=f3c4fb8bae693325b666c6138e1b1daa" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_orders.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByOrders(SequenceSdk::GetChainId(), WalletAddress, Orders, AdditionalFeeBps, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by ERC1155 Sale

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/get_checkout_options_by_erc1155.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=25a493d5d0ee1de6624531a42a3335e7" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_erc1155.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByERC1155Contract(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, TokenId, Amount, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by ERC721 Sale

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/get_checkout_options_by_erc721.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=0eec854c20af1d081556a8458d9daca5" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_erc721.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByERC721Contract(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, TokenId, Amount, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by Token Id Amounts

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-api_docs/CmKz04BVDGuy1x-Z/images/unreal/checkout/get_checkout_options_by_token_id_amounts.png?fit=max&auto=format&n=CmKz04BVDGuy1x-Z&q=85&s=99700ba769a76d46863df16b0823be50" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_token_id_amounts.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByTokenIdAmounts(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, AmountsByTokenId, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>
